#pragma once

#include <glm/vec4.hpp>

namespace division_engine::canvas
{
struct BorderRadius
{
    glm::vec4 tr_br_tl_bl;

    static BorderRadius none() { return BorderRadius { glm::vec4 { 0 } }; }

    static BorderRadius all(float value) { return BorderRadius { glm::vec4 { value } }; }

    static BorderRadius bottom(float bottom)
    {
        return BorderRadius { { 0, bottom, 0, bottom } };
    }

    static BorderRadius top(float top)
    {
        return BorderRadius { { top, 0, top, 0 } };
    }

    static BorderRadius left(float left)
    {
        return BorderRadius { { 0, 0, left, left } };
    }

    static BorderRadius right(float right)
    {
        return BorderRadius { { right, right, 0, 0 } };
    }

    static BorderRadius symmetric(float horizontal, float vertical)
    {
        return BorderRadius { { vertical, horizontal, horizontal, vertical } };
    }
};
}